The present invention relates to user interface for software applications, and more particularly, to systems and methods for dynamic, adaptive modification of the user interface based on usage.
Generally, when a developer designs and codes a software application, the developer writes code to implement functionality according to design specifications and designs a user interface that is organized according to the designer's perception of how users will interact with the application. The arrangement of menus and of menu items and the overall layout are largely based upon the designer's decisions. Additionally, the relative ease with which certain functions are accessed by a user is determined in large part by the same design decisions.
Unfortunately, a software designer cannot always anticipate the frequency with which users will access particular features of an application. Additionally, each user has different software needs and can make use of different functionality within the software application depending on those specific needs. To the extent that software developers hope to improve on subsequent versions of an application, it would be useful to have feedback with respect to how a particular application is used across a large population of users. Unfortunately, it is often difficult to collect feedback from users, in part, because many users lack the time and the desire for responding to survey-type information gathering efforts.
There is an ongoing need in software application design for application usage feedback. Additionally, there is an ongoing need in software design for streamlined and/or more efficient implementations of software applications geared toward particular users. Embodiments of the present invention provide solutions to these problems and other advantages over the prior art.